অ্যাপাচি এইচটিটিপি ক্লায়েন্ট (Apache HTTP Client) একটি শক্তিশালী লাইব্রেরি যা HTTP অনুরোধ এবং উত্তরগুলি সহজে পরিচালনা করার জন্য ব্যবহৃত হয়। এটি HTTP প্রোটোকল ব্যবহার করে সার্ভারের সাথে যোগাযোগের সময় InputStream
এবং OutputStream
ব্যবহার করে ডেটা হ্যান্ডেল করার সুবিধা দেয়। এই লেখায় আমরা বিস্তারিতভাবে জানব কীভাবে InputStream
এবং OutputStream
ব্যবহার করে অ্যাপাচি এইচটিটিপি ক্লায়েন্টে ডেটা প্রেরণ এবং গ্রহণ করা যায়।
যখন আমরা একটি HTTP অনুরোধ পাঠাই, তখন সার্ভার থেকে একটি উত্তর (response) প্রাপ্ত হয়। এই উত্তরটি সাধারণত InputStream
এর মাধ্যমে প্রাপ্ত হয়, যা ডেটা সংগ্রহ এবং প্রক্রিয়া করার জন্য ব্যবহৃত হয়।
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.client.HttpClient;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.io.InputStream;
public class HttpClientExample {
public static void main(String[] args) throws IOException {
HttpClient client = HttpClients.createDefault();
HttpGet request = new HttpGet("https://www.example.com");
// সার্ভার থেকে রেসপন্স পাওয়া
org.apache.http.HttpResponse response = client.execute(request);
HttpEntity entity = response.getEntity();
// InputStream দিয়ে ডেটা পড়া
InputStream inputStream = entity.getContent();
String result = EntityUtils.toString(entity);
System.out.println("Response: " + result);
inputStream.close();
}
}
এখানে, InputStream
ব্যবহার করে সার্ভার থেকে ডেটা পড়া হচ্ছে এবং EntityUtils.toString()
ব্যবহার করে সেই ডেটা টেক্সট আকারে রূপান্তরিত হচ্ছে।
অ্যাপাচি এইচটিটিপি ক্লায়েন্টে HTTP অনুরোধের সাথে ডেটা প্রেরণ করার জন্য OutputStream
ব্যবহার করা হয়। সাধারণত, POST বা PUT অনুরোধগুলিতে ডেটা প্রেরণ করা হয়, যেখানে কন্টেন্ট OutputStream
এর মাধ্যমে পাঠানো হয়।
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.client.HttpClient;
import org.apache.http.entity.StringEntity;
import java.io.IOException;
import java.io.OutputStream;
public class HttpPostExample {
public static void main(String[] args) throws IOException {
HttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost("https://www.example.com");
// JSON ডেটা তৈরি করা
String json = "{\"name\":\"John\", \"age\":30}";
// OutputStream ব্যবহার করে ডেটা প্রেরণ
StringEntity entity = new StringEntity(json);
post.setEntity(entity);
post.setHeader("Content-Type", "application/json");
// সার্ভারে POST অনুরোধ পাঠানো
org.apache.http.HttpResponse response = client.execute(post);
System.out.println("Response Status: " + response.getStatusLine());
}
}
এখানে, OutputStream
ব্যবহার করে একটি POST অনুরোধের মাধ্যমে JSON ডেটা সার্ভারে প্রেরণ করা হচ্ছে। StringEntity
এর মাধ্যমে ডেটা পাঠানো হচ্ছে এবং Content-Type
হেডার নির্ধারণ করা হচ্ছে যাতে সার্ভার সঠিকভাবে ডেটা গ্রহণ করতে পারে।
অ্যাপাচি এইচটিটিপি ক্লায়েন্ট (Apache HTTP Client) এর মাধ্যমে InputStream
এবং OutputStream
ব্যবহার করে HTTP অনুরোধ এবং উত্তর হ্যান্ডেল করা সহজ। InputStream
ব্যবহার করে ডেটা গ্রহণ এবং OutputStream
ব্যবহার করে ডেটা প্রেরণ করা হয়। এই দুটি স্ট্রিম ব্যবহারের মাধ্যমে আমরা HTTP অনুরোধ এবং উত্তরগুলিকে কার্যকরভাবে পরিচালনা করতে পারি।